package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.Video;
import com.tanhua.dubbo.server.vo.PageInfo;

public interface VideoApi {

    /**
     * 保存小视频
     *
     * @param video 视频对象
     * @return 保存成功后，返回视频id
     */
    String saveVideo(Video video);

    /**
     * 按照时间倒序分页查询推荐视频列表
     *
     * @param userId   用户id
     * @param page     页码
     * @param pageSize 页大小
     * @return 包含推荐视频列表的PageInfo对象
     */
    PageInfo<Video> queryVideoList(Long userId, Integer page, Integer pageSize);

    /**
     * 根据pid查询Video对象
     *
     * @param publishId 被评论的动态的pid
     * @return pid对应的Video对象
     */
    Video queryVideoById(String publishId);

    /**
     * 关注用户
     *
     * @param userId       当前用户
     * @param followUserId 关注的目标用户
     * @return 关注成功:true,失败:false
     */
    Boolean followUser(Long userId, Long followUserId);

    /**
     * 取消关注用户
     *
     * @param userId       当前用户
     * @param followUserId 关注的目标用户
     * @return 取消关注成功:true,失败:false
     */
    Boolean disFollowUser(Long userId, Long followUserId);

    /**
     * 查询用户是否关注某个用户
     *
     * @param userId       当前用户
     * @param followUserId 关注的目标用户
     * @return 有关注:true,没有关注:false
     */
    Boolean isFollowUser(Long userId, Long followUserId);
}